// src/stores/modules/member.ts

import { defineStore } from 'pinia'
import { ref } from 'vue'
import { LoginByPasswordResult } from '../../types/member'

// 定义 Store
export const useUserStore = defineStore(
  'user',
  () => {
    const token = ref<string>()
    // 保存token，登录时使用
    const setToken = (val: string) => {
      token.value = val
    }
    // 清理token，退出时使用
    const clearToken = () => {
      token.value = ''
    }
    // 会员信息
    const profile = ref<LoginByPasswordResult>()
    // 保存会员信息，登录时使用
    const setProfile = (val: LoginByPasswordResult) => {
      profile.value = val
    }

    // 清理会员信息，退出时使用
    const clearProfile = () => {
      profile.value = undefined
    }

    // 记得 return
    return { token, setToken, clearToken, profile, setProfile, clearProfile }
  },
  {
    // 小程序端配置
    persist: {
      storage: {
        getItem(key) {
          return uni.getStorageSync(key)
        },
        setItem(key, value) {
          uni.setStorageSync(key, value)
        },
      },
    },
  },
)
